# 可迭代的对象：1.生成器 2.元组 列表 集合 字典 字符串
# 如何判断一个对象是否是可迭代的：
from collections.abc import Iterable    # 从collections中导入Iterable

list_4 = [1,4,7,8,9]
f = isinstance(list_4,Iterable)      # 利用isinstance函数来检查是否可迭代
print(f)

f = isinstance("abc",Iterable)
print(f)

f = isinstance(100,Iterable)
print(f)

g = (x + 1 for x in range(10))
f = isinstance(g,Iterable)
print(f)

"""
可以被next()函数调用并不断返回下一个值的对象称为迭代器
特点：
迭代器对象从集合的第一个元素开始访问，直到所有的元素被访问完结束
迭代器只能往前不会后退
生成器是可迭代的，也是迭代器
list是可迭代的，但不是迭代器
list---> iter(list)---> 迭代器 next()
"""
list_5 = [1,2,3,4,5]
# print(next(list_5))
# print(next(list_5))      # TypeError: 'list' object is not an iterator

list_5 = iter(list_5)      # 用iter()函数将可迭代对象转化为迭代器

print(next(list_5))
print(next(list_5))